gsk/gskrendernodeimpl.c: Avoid VLAs
authorChun-wei Fan <fanchunwei@src.gnome.org>
Mon, 26 Dec 2016 04:40:36 +0000 (12:40 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Thu, 29 Dec 2016 09:41:59 +0000 (17:41 +0800)
Use g_newa() instead of VLAs, as VLAs may never be supported by some
compilers as it became optional in C11 and there are concerns about their
implementations in compilers that do support it.

https://bugzilla.gnome.org/show_bug.cgi?id=773299

gsk/gskrendernodeimpl.c

index cade17a9562e36d4cf398c1aaa3d4ec7f65143d9..6a632f086e06a2fa7ef947c4500420d08664e1f7 100644 (file)
@@ -247,7 +247,7 @@ gsk_linear_gradient_node_real_deserialize (GVariant  *variant,
                  &iter);
 
   n_stops = g_variant_iter_n_children (iter);
-  GskColorStop stops[n_stops];
+  GskColorStop *stops = g_newa (GskColorStop, n_stops);
   for (i = 0; i < n_stops; i++)
     {
       double offset;
@@ -1910,7 +1910,7 @@ gsk_container_node_deserialize (GVariant  *variant,
 
   i = 0;
   n_children = g_variant_iter_init (&iter, variant);
-  GskRenderNode *children[n_children];
+  GskRenderNode **children = g_newa (GskRenderNode *, n_children);
 
   while (g_variant_iter_loop (&iter, "(uv)", &child_type, &child_variant))
     {
@@ -2784,7 +2784,7 @@ gsk_shadow_node_deserialize (GVariant  *variant,
     }
 
   n_shadows = g_variant_iter_n_children (iter);
-  GskShadow shadows[n_shadows];
+  GskShadow *shadows = g_newa (GskShadow, n_shadows);
   for (i = 0; i < n_shadows; i++)
     {
       double dx, dy, radius;